package service.configuration.xstream;

import java.util.List;

import service.configuration.IApplicationConfig;
import service.configuration.IAsofConfig;
import service.configuration.IAssociationConfig;
import service.configuration.IOwnerAssociationConfig;
import service.configuration.IPersonSheetConfig;
import service.configuration.ISheetConfig;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;


@XStreamAlias("asofconfig")
public class AsofConfig implements IAsofConfig {
	private IPersonSheetConfig personsheet;
	@XStreamImplicit(itemFieldName="sheet")
	private List<ISheetConfig> sheets;
	@XStreamImplicit(itemFieldName="association")
	private List<IAssociationConfig> associations;
	@XStreamImplicit(itemFieldName="owner")
	private List<IOwnerAssociationConfig> ownerAssociations;
	@XStreamImplicit(itemFieldName="tree")
	private List<TreeAssociationConfig> treeAssociations;
	@XStreamImplicit(itemFieldName="link")
	private List<LinkAssociationConfig> linkAssociations;
	@XStreamAlias("application")
	private IApplicationConfig applicationConfig;
	
	public AsofConfig(IPersonSheetConfig personSheetConfig, 
			List<ISheetConfig> sheetConfigs, 
			List<IAssociationConfig> associationConfigs) {
		this.personsheet = personSheetConfig;
		this.sheets = sheetConfigs;
		this.associations = associationConfigs;
	}
	
	public IPersonSheetConfig getPersonSheetConfig() {
		return personsheet;
	}
	public void setPersonSheetConfig(IPersonSheetConfig personSheetConfig) {
		this.personsheet = personSheetConfig;
	}
	public List<ISheetConfig> getSheetConfigs() {
		return sheets;
	}
	public void setSheetConfigs(List<ISheetConfig> sheetConfigs) {
		this.sheets = sheetConfigs;
	}
	public List<IAssociationConfig> getAssociationConfigs() {
		return associations;
	}
	public void setAssociationConfigs(List<IAssociationConfig> associations) {
		this.associations = associations;
	}

	public IApplicationConfig getApplicationConfig() {
		return applicationConfig;
	}

	public void setApplicationConfig(IApplicationConfig applicationConfig) {
		this.applicationConfig = applicationConfig;
	}

	public List<IOwnerAssociationConfig> getOwnerAssociations() {
		return ownerAssociations;
	}

	public void setOwnerAssociations(List<IOwnerAssociationConfig> ownerAssociations) {
		this.ownerAssociations = ownerAssociations;
	}

	public List<TreeAssociationConfig> getTreeAssociations() {
		return treeAssociations;
	}

	public void setTreeAssociations(List<TreeAssociationConfig> treeAssociations) {
		this.treeAssociations = treeAssociations;
	}

	public List<LinkAssociationConfig> getLinkAssociations() {
		return linkAssociations;
	}

	public void setLinkAssociations(List<LinkAssociationConfig> linkAssociations) {
		this.linkAssociations = linkAssociations;
	}
	
}
